package br.utfpr.lsip.modelo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class Conceito {
	
	private Conceito superConceito;
	private Conceito subConceito;
	private List<Propriedade> listaDePropriedades;
	private HashMap<String, Instancia> listaDeInstancias;
	
	public Conceito(Conceito superConceito, Conceito subConceito)
	{
		this.superConceito = superConceito;
		this.subConceito = subConceito;
		listaDePropriedades = new ArrayList<Propriedade>();
		listaDeInstancias = new HashMap<String, Instancia>();
	}
	
	public void adicionarPropriedade(Propriedade propriedade)
	{
		listaDePropriedades.add(propriedade);
	}
	
	public Instancia criarInstancia(String nome)
	{
		Instancia novaInstancia = new Instancia(nome, this);
		listaDeInstancias.put(nome, novaInstancia);
		return novaInstancia;
	}

	public Conceito getSuperConceito() {
		return superConceito;
	}

	public void setSuperConceito(Conceito superConceito) {
		this.superConceito = superConceito;
	}

	public Conceito getSubConceito() {
		return subConceito;
	}

	public void setSubConceito(Conceito subConceito) {
		this.subConceito = subConceito;
	}

	public List<Propriedade> getListaDePropriedades() {
		return listaDePropriedades;
	}
}
